class Dog:
    name = '藏獒'
    age = 2

    def hi(self):
        print(f"hi self : {id(self)}")

    # (5)在方法内部,要访问成员变量和成员方法的时候,需要使用self
    def eat(self):
        print(self.name ,"饿了...")

    def cry(self , name):
        #这里使用的是传递过来的name
        print(f"{name} is crying")
        #这里使用的是成员变量
        print(f"{self.name} is crying")
        #这里使用self调用成员方法
        self.eat()
        #不能直接使用eat
        #eat()

#self表示为当前对象本身 , 那个对象调用,self 就代表的是哪个对象
#创建对象dog2
dog2 = Dog()
print(f"dig2:{id(dog2)}")
dog2.hi()
dog2.eat()
dog2.name = "中华田园犬"
dog2.cry("樊振东")

# dog3 = Dog()
# print(f"dig3:{id(dog3)}")
# dog3.hi()

#(4)当我们通过对象调用方法的时候,self会隐式的传入

